From: Sean Young Date: Sun, 17 Oct 2021 12:01:15 +0000 (+0100) Subject: media: ite-cir: IR receiver stop working after receive overflow X-Git-Tag: archive/raspbian/5.14.16-1+rpi1^2~28 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/%22bookmarks:/?a=commitdiff_plain;h=ff5c23ee2ee398162ae5b4369f703182f7c54c2c;p=linux.git media: ite-cir: IR receiver stop working after receive overflow Origin: https://git.linuxtv.org/media_stage.git/commit/?id=fdc881783099c6343921ff017450831c8766d12a Bug-Debian: https://bugs.debian.org/996672 On an Intel NUC6iSYK, no IR is reported after a receive overflow. When a receiver overflow occurs, this condition is only cleared by reading the fifo. Make sure we read anything in the fifo. Fixes: 28c7afb07ccf ("media: ite-cir: check for receive overflow") Suggested-by: Bryan Pass Tested-by: Bryan Pass Cc: stable@vger.kernel.org> Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab Gbp-Pq: Topic bugfix/all Gbp-Pq: Name media-ite-cir-IR-receiver-stop-working-after-receive.patch --- diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c index 5bc23e8c6d9..4f77d4ebacd 100644 --- a/drivers/media/rc/ite-cir.c +++ b/drivers/media/rc/ite-cir.c @@ -242,7 +242,7 @@ static irqreturn_t ite_cir_isr(int irq, void *data) } /* check for the receive interrupt */ - if (iflags & ITE_IRQ_RX_FIFO) { + if (iflags & (ITE_IRQ_RX_FIFO | ITE_IRQ_RX_FIFO_OVERRUN)) { /* read the FIFO bytes */ rx_bytes = dev->params->get_rx_bytes(dev, rx_buf, ITE_RX_FIFO_LEN);